home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1986 December
/
Ahoy_Magazine_86-12_1986_Double_L.d64
/
Disk Check-Up
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
5KB
|
196 lines
90 print"[147]":poke53280,2:poke53281,0:poke646,1
100 goto 280
110 rem inner trace loop
120 print#1,"u1 2 0";t;s
130 input#1, en,em$,et,es
140 if en<>0 then goto 1960:rem disk trace error
150 lt%(i)=lt%(i)+1
160 if ob%(t,s)<>0 then goto 1410:rem file intersect
170 ob%(t,s)=i
180 get#2,a$,b$
190 if a$="" then goto 1450:rem trace loop continue
200 if b$="" then b$=chr$(0)
210 t=asc(a$):s=asc(b$)
220 goto 120:rem inner trace loop
230 rem*******************************
240 rem disk check-up
250 rem
260 rem don fulton
270 rem*******************************
280 dim i,s,t,x,y,z
290 dim bc,en,es,et,im,lc,of,pf,s1,s2,sf,t1,t2
300 dim ts%(144),ss%(144),ld%(144),lt%(144),pf%(144),n$(144)
310 dim ob%(35,20)
320 close 1:open 1,8,15:close 2:close 1
330 rem-------------------------------
340 print chr$(147)
350 print
360 print " disk check-up
370 [153] " tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(
380 print " checks:
390 [153]
400 [153] " -- start links different
410 print
420 print " -- trace file len = dir file len
430 [153]
440 [153] " -- files do not overlap
450 print
460 print " -- (3) blocks free
470 [153]
480 [143]--------------------------------
490 [143] sho -36 cy- shp
500 [143] cmg cmm
510 [143] cmg box below cmm
520 [143] cmg cmm
530 [143] shl -36 cp- sh@
540 [143]--------------------------------
550 [153] " (NULL)usrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusrusr(NULL)
560 print " [165]this utility does not write to disk.[167]
570 [153] " fn then
580 print " [165] (problem files are displayed)[146] [167]
590 [153] " fn in inverse video)wait then
600 print " [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]
610 [129] x[178]1 [164] 1000:[130]
620 [153]
630 [143]-------------------------------
640 [143] find start of active files
650 [153]
660 [153] " start length "
670 [153] "file t , s file name dir--trace"
680 [153] "tab(tab(tab(tab( tab(tab(tab(tab(tab( tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab( tab(tab(tab( tab(tab(tab(tab(tab("
690 [159] 1,8,15
700 [159] 2,8,2,"#"
710 t1[178]18:s1[178]1:i[178]1
720 [143] next directory sector
730 : [139] t1[178]0 [167] [137]1010:[143] directory close
740 : [152]1,"u1 2 0";t1;s1
750 : [132]1, en,em$,et,es
760 : [139] en[179][177]0 [167] [137] 1980:[143] disk error
770 : [161]#2,a$,b$
780 : t2[178]t1:s2[178]s1
790 : t1[178][198](a$[170][199](0))
800 : s1[178][198](b$[170][199](0))
810 : [129] x[178]2 [164] 255 [169] 32
820 : [152]1,"u1 2 0";t2;s2
830 : [152]1,"b-p 2";x
840 : [132]1, en,em$,et,es
850 : [139] en[179][177]0 [167] [137] 1980:[143] disk error
860 : [161]#2,c$,d$,e$,f$,g$,h$,i$,j$,k$,l$,m$,n$,o$,p$,q$,r$,s$,t$,u$
870 : [139] c$[178]"" [167] [137] 980:[143] directory continue
880 : ts%(i)[178][198](d$[170][199](0))
890 : ss%(i)[178][198](e$[170][199](0))
900 : n$(i)[178]f$[170]g$[170]h$[170]i$[170]j$[170]k$[170]l$[170]m$[170]n$[170]o$[170]p$[170]q$[170]r$[170]s$[170]t$[170]u$
910 : [152]1, "b-p 2";x[170]28
920 : [161]#2,v$,w$
930 : ld%(i)[178][198](v$[170][199](0))[170]256[172][198](w$[170][199](0))
940 : [153] i;[163]4)ts%(i);[163]8)",";[163]9)ss%(i);
950 : [153] [163]13)n$(i);[163]29)ld%(i);[163]33);"--";lt%(i)
960 : i[178]i[170]1
970 : [143] directory continue
980 : [130]
990 [137] 730:[143] next directory sector
1000 [143] directory close
1010 im[178]i[171]1
1020 [160] 2:[160] 1
1030 [143]------------------------------
1040 [153]
1050 [153] " checking start links for overlap"
1060 [153]
1070 [139] im[178]0 [176] im[178]1 [167] [137] 1250:[143] start link end
1080 [129] i[178]2 [164] im
1090 : [129] y[178]1 [164] i[171]1
1100 : [139] ts%(y)[178]ts%(i)[167] [139] ss%(y)[178]ss%(i)[167] [137] 1150:[143] file overlap
1110 : [130]
1120 [130]
1130 [137] 1250:[143] start link end
1140 [143] file overlap
1150 : pf%(i)[178]1:pf%(y)[178]1
1160 : of[178]1:[143] set overlap flag
1170 : [153] y;[199](18);[163]4)ts%(y);[163]8)",";
1180 : [153] [163]9)ss%(y);[163]13)n$(y);[199](146);
1190 : [153] [163]29)ld%(y);[163]33);"--";lt%(y)
1200 : [153] i;[199](18);[163]4)ts%(i);[163]8)",";
1210 : [153] [163]9)ss%(i);[163]13)n$(i);[199](146);
1220 : [153] [163]29)ld%(i);[163]33);"--";lt%(i)
1230 [137] 1110:[143] start link continue
1240 [143] start link end
1250 [139] of[178]0 [167] [153] " --start links ok--"
1260 [143]-----------------------------
1270 [153]
1280 [153] " tracing files"
1290 [153]
1300 [159] 1,8,15
1310 [159] 2,8,2,"#"
1320 [139] im[178]0 [167] [137] 1530:[143] trace end
1330 [129] i[178]1 [164] im
1340 : t[178]ts%(i)
1350 : s[178]ss%(i)
1360 : lt%(i)[178]0
1370 : pf$[178]""
1380 : sf[178]0
1390 : [137] 120:[143] inner trace loop
1400 : [143] file intersect
1410 : pf%(ob%(t,s))[178]1
1420 : pf%(i)[178]1
1430 : sf[178]1:[143] set intersect flag
1440 : [143] trace loop continue
1450 : bc[178]bc[170]lt%(i)
1460 : [153] i;[163]4)ts%(i);[163]8)",";[163]9)ss%(i);
1470 : [139] lt%(i)[179][177]ld%(i) [167] pf%(i)[178]pf%(i)[170]2:[153] [199](18);
1480 : [153] [163]13)n$(i);[163]29)ld%(i);[163]33);"--";lt%(i)
1490 : [139] pf$[179][177]""[167] [153] " (file";i;"contains ";[170]pf$;")":[153]
1500 : [139] sf[178]1 [167] [153] " (file";i;"intersects file ";ob%(t,s);")":[153]
1510 [130]
1520 [143] trace end
1530 [160] 2:[160] 1
1540 [143]------------------------------
1550 [153]
1560 [153] " problem files--"
1570 [153] " tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab(tab("
1580 [139] im[178]0 [167] [137] 1710:[143] problem file end
1590 [129] i[178]1 [164] im
1600 : [139] pf%(i)[178]0 [167] [137] 1690:[143] problem loop continue
1610 : pf[178]1:[143] set problem file flag
1620 : [153] i;
1630 : [139] pf%(i)[178]1 [176] pf%(i)[178]3 [167] [153] [199](18);
1640 : [153] [163]4)ts%(i);[163]8)",";[163]9)ss%(i);
1650 : [153] [199](18);[163]13)n$(i);[199](146);
1660 : [139] pf%(i)[178]2 [176] pf%(i)[178]3 [167] [153] [199](18);
1670 : [153] [163]29)ld%(i);[163]33);"--";lt%(i)
1680 : [143] problem loop continue
1690 [130]
1700 [143] problem file end
1710 [139] pf[178]0 [167] [153] " none"
1720 [153]
1730 [153] " block count = ";bc
1740 [153]
1750 [153] " blocks free = ";664[171]bc;[163]20)"(trace)"
1760 [129] i[178]0 [164] im
1770 : lc[178]lc[170]ld%(i)
1780 [130]
1790 [153] " blocks free = ";664[171]lc;[163]20)"(dir)"
1800 [143]------------------------------
1810 [143] dir bam blocks free
1820 [159] 1,8,15
1830 [159] 2,8,2,"#"
1840 [152]1,"u1 2 0";18;0
1850 [132]1, en,em$,et,es
1860 [139] en[179][177]0 [167] [137] 1980:[143] disk error
1870 [129] x[178]0 [164] 35
1880 : [161]#2,w$,x$,y$,z$
1890 : [139] x[179][177]0 [175] x[179][177]18 [167] bu[178]bu[170][198](w$[170][199](0))
1900 [130]
1910 [153] " blocks free = ";bu;[163]20)"(bam)"
1920 [160] 2:[160] 1
1930 [128]
1940 [143]------------------------------
1950 [143] disk trace error
1960 [139] en[178]66 [167] pf$[178]"illegal link":[137] 1450:[143] trace loop continue
1970 [143] disk error
1980 [153]
1990 [153] " unrecoverable disk error"
2000 [153]
2010 [153] en;em$;et;es
2020 [160] 2:[160] 1
2030 [128]